package com.cws.project.cws.clazz.mapper;

import com.cws.project.cws.clazz.domain.ClazzUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 班级用户关联Mapper接口
 *
 * @author xyl
 * @date 2021-12-21
 */
public interface ClazzUserMapper {
    /**
     * 查询班级用户关联
     *
     * @param clazzId 班级用户关联ID
     * @return 班级用户关联
     */
    public ClazzUser selectClazzUserById(Long clazzId);

    /**
     * 查询班级用户关联列表
     *
     * @param clazzUser 班级用户关联
     * @return 班级用户关联集合
     */
    public List<ClazzUser> selectClazzUserList(ClazzUser clazzUser);

    /**
     * 新增班级用户关联
     *
     * @param clazzUser 班级用户关联
     * @return 结果
     */
    public int insertClazzUser(ClazzUser clazzUser);

    /**
     * 修改班级用户关联
     *
     * @param clazzUser 班级用户关联
     * @return 结果
     */
    public int updateClazzUser(ClazzUser clazzUser);

    /**
     * 删除班级用户关联
     *
     * @param clazzId 班级用户关联ID
     * @return 结果
     */
    public int deleteClazzUserById(Long clazzId);

    /**
     * 批量删除班级用户关联
     *
     * @param clazzIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteClazzUserByIds(String[] clazzIds);

    /**
     * 删除班级用户关联
     *
     * @param userId 班级用户关联用户ID
     * @return 结果
     */
    int deleteClazzUserByUserId(@Param("userId") Long userId, @Param("clazzId") Long clazzId);

    /**
     * 删除班级用户关联
     *
     * @param userId 班级用户关联用户ID
     * @return 结果
     */
    int deleteClazzUserByUserId(@Param("userId") Long userId);

    int insertBatchClazzUser(List<ClazzUser> list);

    ClazzUser selectClazzUserByStudentId(Long userId);
}
